package sg.edu.nus.iss.vmcs.abstraction;

import sg.edu.nus.iss.vmcs.system.Mediator;
/*
 * @author nyi nyi than
 */
public abstract class PresenterBase<TView>
{
	protected TView view;
	protected static IMediator mediator = new Mediator();
	protected String name;

	public TView getView()
	{
		return view;
	}

	public PresenterBase(String name)
	{
		this.name = name;		
	}

	public void setView(TView view)
	{
		this.view = view;
	}

	public IMediator getMediator()
	{
		return mediator;
	}

	public void setMediator(IMediator mediator)
	{
		PresenterBase.mediator = mediator;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	public String getName()
	{
		return name;
	}

	public abstract void notify(PresenterBase<?> sender, String message);

	public abstract void send(String receiverName, String message);

	public abstract void display();

	public abstract void closeDown();

}
